package com.myproject.classload;

import java.util.ArrayList;
import java.util.List;

public class Test2 {

    //被动使用示例1：通过子类调用父类的静态属性，不会初始化子类
    /*public static void main(String[] args) {
        System.out.println(SubClass.value);
    }*/

    //被动使用示例2：通过数组或者泛型来引用类，不会导致类初始化
    /*public static void main(String[] args) {
        SuperClass[] superClasses = new SuperClass[10];
        List<SuperClass> list = new ArrayList<>();
    }*/

    //被动使用示例3：常量在编译阶段会存到常量池中，本质上并没有直接引用到
    //定义常量的类，所以不会导致类的实例化
    public static void main(String[] args) {
        System.out.println(SuperClass.HELLO);
    }
}
